Spatial Audio with FMOD

Loading a 3D sound

A sound is prepared for 3D processing if it is loaded with the FMOD_3D mode specifier.

The minimum and maximum audible distance for a channel is set as follows;

MinDistance is the minimum distance that the sound emitter will cease to continue growing louder at (as it approaches the listener). Within the mindistance it stays at the constant loudest volume possible. Outside of this mindistance it begins to attenuate.

MaxDistance is the distance a sound stops attenuating at.

Beyond this point it will stay at the volume it would be at maxdistance units from the listener and will not attenuate any more. MinDistance is useful to give the impression that the sound is loud or soft in 3d space.

An example of this is a small quiet object, such as a bumblebee, which you could set a mindistance of to 0.1 for example, which would cause it to attenuate quickly and dissapear when only a few meters away from the listener.Another example is a jumbo jet, which you could set to a mindistance of 100.0, which would keep the sound volume at max until the listener was 100 meters away, then it would be hundreds of meters more before it would fade out.

In summary, increase the mindistance of a sound to make it 'louder' in a 3D world, and decrease it to make it 'quieter' in a 3D world. maxdistance is effectively obsolete unless you need the sound to stop fading out at a certain point.

Do not adjust this from the default if you dont need to. Some people have the confusion that maxdistance is the point the sound will fade out to, this is not the case.

Positioning the Sound & the Listener

In order for most 3D effects to work correctly, FMOD needs to know the relative position of the sound source and listener.

Once the relative positions and velocities are known, FMOD will calculate attenuation and doppler effects automatically.

Reverb

Ambient Reverb

Ambient reverb is the 'background' reverb that exists every where in the game space. To set this you can choose one of the preset reverb properties.

By default the ambient reverb is set to 'off'.

Reverb Object

A reverb object is used to modify the reverb properties of a given region.

The 3D reverb object is a sphere having 3D attributes (position, minimum distance, maximum distance) and reverb properties.

The properties and 3D attributes of all reverb objects collectively determine, along with the listener's position, the settings of and input gains into a single 3D reverb DSP.

When the listener is within the sphere of effect of one or more 3d reverbs, the listener's 3D reverb properties are a weighted combination of such 3d reverbs. When the listener is outside all of the reverbs, the 3D reverb setting is set to the default ambient reverb setting.

It is possible to create your own set of reverb properties;